
<!DOCTYPE html>
<html>
<head>
            <link rel="canonical" href="http://blog.csdn.net/baicp3/article/details/46118203"/> 

    <script type="text/javascript">
        var username = "baicp3";var _blogger = username;var blog_address = "http://blog.csdn.net/baicp3";var static_host = "http://static.blog.csdn.net";
        var currentUserName = ""; var fileName = '46118203';var commentscount = 0; var islock = false
        window.quickReplyflag = true;
        var totalFloor=0;
                
                 var isBole = false;
                
                
                 var isDigg = false;
                
          
             var isExpert=false;
        
          
        var isAdm=false;
        

    </script>

<meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <script src="http://c.csdnimg.cn/public/common/libs/jquery/jquery-1.9.1.min.js" type="text/javascript"></script>
    <link rel="stylesheet" href="http://c.csdnimg.cn/public/common/libs/bootstrap/css/bootstrap.min.css">
    <link rel="stylesheet" href="http://c.csdnimg.cn/public/static/css/avatar.css">
    <link type="text/css" rel="stylesheet" href="http://static.blog.csdn.net/scripts/SyntaxHighlighter/styles/default.css" />
    <link rel="stylesheet" href="http://static.blog.csdn.net/Skin/skin3-template/css/style.css?v=2017.042">
    <link rel="stylesheet" href="http://c.csdnimg.cn/public/common/toolbar/content_toolbar_css/content_toolbar.css?v5.00.37">
              <!-- adhoc sdk -->
		<script src=https://sdk.appadhoc.com/ab.plus.js></script>
		<script>
		adhoc('init', {
		  appKey: 'ADHOC_0e0bce4f-8793-4f68-89cf-34c14f2532bb',
		  defaultFlags: {isLogin: true}
		})
		</script>
              <!-- adhoc sdk end -->
    
	<script src="//static.blog.csdn.net/public/switchHome/switchHome.js?v=2017.43"></script>	
	
    <script type="text/javascript" src="http://static.blog.csdn.net/Skin/skin3-template/fonts/iconfont.js"></script>
    <script src="//csdnimg.cn/rabbit/exposure-click/main.js?v1.15.23"></script>
    <script type="text/javascript" src="http://c.csdnimg.cn/pubfooter/js/tracking_for_recommend.js?v=0911" charset="utf-8"></script>
    <script type="text/javascript" src="http://csdnimg.cn/pubfooter/js/tracking.js" charset="utf-8"></script>
    <script type="text/javascript" src="http://static.blog.csdn.net/scripts/cnick.js" charset="utf-8"></script>
 
    <link rel="stylesheet" href="http://static.blog.csdn.net/code/prettify.css" />
    <script type="text/javascript" src="http://static.blog.csdn.net/code/prettify.js"></script>
<script src="http://dup.baidustatic.com/js/ds.js"></script>
    <script type="text/javascript">

        // Traffic Stats of the entire Web site By baidu
        var _hmt = _hmt || [];
        (function() {
            var hm = document.createElement("script");
            hm.src = "https://hm.baidu.com/hm.js?6bcd52f51e9b3dce32bec4a3997715ac";
            var s = document.getElementsByTagName("script")[0];
            s.parentNode.insertBefore(hm, s);
        })();
        // Traffic Stats of the entire Web site By baidu end



    </script>
    <meta name="description" content="摘 要：本文研究了跨域条件下多个Web应用系统之间单点登录令牌的设计，从安全应用的角度设计了令牌内容的构成。利用已有的安全加/解密算法，实现了跨域跨系统间令牌的生成和解析，通过实际集成应用检验了登录令牌的可用性和便利性。
　　关键词：单点登录；令牌；算法；跨域
　　单点登录（Single-Sign-On，SSO），是目前比较流行的企业业务整合的解决方案之一。用户只需要登录一次就可以访问所有相互" />
    <meta name="keywords" content="" />
    <meta http-equiv="Cache-Control" content="no-siteapp" /><link rel="alternate" media="handheld" href="#" />
    <meta name="shenma-site-verification" content="5a59773ab8077d4a62bf469ab966a63b_1497598848">


    <title>基于跨域单点登录令牌的设计与实现 - CSDN博客</title>
</head>
<body>
<script id="toolbar-tpl-scriptId" prod="download" skin="black" src="http://c.csdnimg.cn/public/common/toolbar/js/content_toolbar.js?v5.00.37" type="text/javascript" domain="http://blog.csdn.net"></script>

<div class="container clearfix">
    <main>
        <article>
            <h1 class="csdn_top">基于跨域单点登录令牌的设计与实现</h1>
            <div class="article_bar clearfix">
                <div class="artical_tag">
                    <span class="original">转载</span>
                    <span class="time">2015年05月28日 09:49:58</span>
                </div>
				<ul class="article_tags clearfix csdn-tracking-statistics" data-mod="popu_377">
					<li class="tit">标签：</li>
					
				</ul>
                <ul class="right_bar">
                    <li><button class="btn-noborder"><i class="icon iconfont icon-read"></i><span class="txt">3037</span></button></li>
                    <!--<li><button class="btn-noborder"><i class="icon iconfont icon-dashang-"></i><span class="txt">0</span></button></li>-->

                    <li class="edit">
                        <a class="btn-noborder" href="" >
                            <i class="icon iconfont icon-bianji"></i><span class="txt">编辑</span>
                        </a>
                    </li>
                    <li class="del">
                        <a class="btn-noborder" onclick="javascript:deleteArticle(fileName);return false;">
                            <i class="icon iconfont icon-shanchu"></i><span class="txt">删除</span>
                        </a>
                    </li>
                </ul>
            </div>
            <div id="article_content" class="article_content csdn-tracking-statistics" data-mod="popu_519" data-dsm="post">
                
<p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; color:rgb(51,51,51); font-family:tahoma,sans-serif; font-size:14px; line-height:30px">
<strong>摘 要：</strong>本文研究了跨域条件下多个Web应用系统之间单点登录令牌的设计，从安全应用的角度设计了令牌内容的构成。利用已有的安全加/解密算法，实现了跨域跨系统间令牌的生成和解析，通过实际集成应用检验了登录令牌的可用性和便利性。<br>
　<strong>　关键词</strong>：单点登录；令牌；算法；跨域<br>
　　单点登录（Single-Sign-On，SSO），是目前比较流行的企业业务整合的解决方案之一。用户只需要登录一次就可以访问所有相互信 任的应用系统，SSO是解决异域信息管理系统之间系统集成的一种快捷、有效的应用手段，使数据整合和权限管理更为便捷，能够较好的改善用户使用应用系统的 体验。<br>
　　目前已实现单点登录的典型模型有经纪人模型、代理模型、代理和经纪人模型、网管模型和令牌模型等，比较成熟的解决方案有微软的 Passport、IBM的WebSphere Portal Server、CAS，这些产品虽能较好的实现单点登录，但存在系统复杂、使用成本和学习曲线高、不能满足小型应用系统集成等缺点。<br>
　　文献针对明文Cookie安全性不强的特点，提出了一种基于冗余技术的跨域Cookie共享解决方案，使用固定密钥对Cookie进行 加密，能够提高Cookie的应用安全；文献提出了Web环境下基于跨域Cookie共享的解决方案，但由于Cookie保存在客户端且是明 文，容易被篡改；文献提出一种基于URL重定向的解决方案，将信息参数以明文附加在URL的后面，实现不同应用程序之间的信息共享。<br>
　　本文针对Cookie存在的安全性和跨域使用的问题，着重从安全应用的角度对SSO令牌的设计展开深入研究，探索一种安全的、可扩展 的、易于集成的、能跨域的Cookie，具备应用快速、成本低廉并应用安全等特点。通过借鉴文献中介绍的单点登录模型，结合本文 的应用，设计并实现了一种跨域的单点登录令牌。</p>
<p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; color:rgb(51,51,51); font-family:tahoma,sans-serif; font-size:14px; line-height:30px">
<img src="http://www.lwfbxd.com/includes/ueditor/php/upload1/20140510/1399685105179697.png" title="1.png" alt="" style="border:0px none"></p>
<p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; color:rgb(51,51,51); font-family:tahoma,sans-serif; font-size:14px; line-height:30px">
　<strong>　1 系统应用结构及构成</strong><br>
　　本文的应用环境中，有两个Web应用系统，一个是信息管理系统，此系统为主系统，.NET开发（应用环境：.NET Framework 1.1，SQLServer 2000，记为系统A）；另一个是内容管理系统，JAVA开发（应用环境：JDK1.6，Tomcat6.0，MySQL 5.6，记为系统B）。系统B从属于系统A，用户从系统A登录成功后，可从系统A跳转到系统B而无需在系统B中再次登录。系统A按照一个规则生成令牌，并 将此令牌通过URL重定向到系统B，系统B解析接收到令牌并完成校验，准确无误后登录到系统B。系统应用结构如图1。<br>
<strong>　　2 令牌内容的构成</strong></p>
<p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; color:rgb(51,51,51); font-family:tahoma,sans-serif; font-size:14px; line-height:30px">
<img src="http://www.lwfbxd.com/includes/ueditor/php/upload1/20140510/1399685232899868.png" title="2.png" alt="" style="border:0px none"><br>
</p>
<p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; color:rgb(51,51,51); font-family:tahoma,sans-serif; font-size:14px; line-height:30px">
　　令牌内容的第一、二、三、五部分内容长度是固定的，第四部分内容可根据应用的实际需要进行扩充，除了存储用户信息之外，还可以存储其他与应用相关的信息，具有较强的可扩充性，避免了因固定长度带来令牌可扩充性的限制。<br>
<strong>　　3 令牌内容的加密和解密</strong><br>
　　为了保证令牌在传递过程中的安全，必须对原始令牌的内容进行加密，本文对令牌中的校验信息使用不可逆加密算法，防止校验令牌在传输过程中被截 取并篡改；用户信息使用对称加密算法，以便其他系统的解密。目前采用了AES、SHA-1、Base64等三种加/解密算法，通过这三种加/解密算法保证 数据的安全。<br>
　　AES加密算法用于加密用户信息及生成的令牌；SHA-1算法用于计算用户密码和令牌的校验和；Base64将AES加密后的令牌编/解码。<br>
　　3.1 加密流程<br>
　　令牌加密流程首先按令牌内容结构填充内容，计算内容的校验和后填充到校验和内容区。加密流程图如图2。<br>
　　（1）将版本号、当前用户登录时间、会话失效时间和用户登录信息按照令牌各部分所属位置进行填充。（2）系统A中的用户密码在注册时已经将用 户登录密码使用MD5加密，就不再使用AES加密算法对用户登录密码加密，直接使用SHA-1计算出用户登录密码的校验和（记为D1），填充到令牌数组的 最后20位里。（3）由于直接将密码的校验和发送给客户端将带来安全性的问题，本应用中将使用SHA-1再次计算整个令牌数组的校验和（记为D2），得到 一个新的20位数组，并填充到原令牌数组里的最后20位里，用校验和D2验证令牌在传递过程中是否被篡改，如同电子指纹的作用。（4）使用AES加密算法
 对令牌数组进行加密，再使用Base64算法进行编码得到令牌，在系统之间传输的即是此令牌。<br>
　　3.2 解密流程<br>
　　令牌解密流程较加密流程复杂一些，过程与令牌加密流程相反，增加了令牌内容校验和与接收的校验和比较，以比较结果作为令牌是否被篡改的依据。解密流程图如图3。</p>
<p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; color:rgb(51,51,51); font-family:tahoma,sans-serif; font-size:14px; line-height:30px">
<img src="http://www.lwfbxd.com/includes/ueditor/php/upload1/20140510/1399685258991331.png" title="3.png" alt="" style="border:0px none"><br>
</p>
<p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; color:rgb(51,51,51); font-family:tahoma,sans-serif; font-size:14px; line-height:30px">
　　（1）使用Base64算法解码，再使用AES解密算法对解码后的数组进行解密。（2）取出解密令牌数组的最后20位（记为D1）。同时获取 系统B中存储的经MD5加密的用户密码，使用SHA-1计算校验和，填充到解密令牌数组的最后20位里，再次使用SHA-1计算整个令牌数组的校验和（记 为D2）。（3）比较D1和D2是否一致，如果不一致则说明令牌在传递过程中被篡改，跳转到系统B的登录页面重新登录；如果一致则完成后续的登录校验，跳 转到系统B的应用界面。<br>
<strong>　　4 令牌的集成应用</strong><br>
　　用户首先从系统A登录，后台验证无误后按照加密流程生成当前用户的SSO令牌。用户从系统A切换到系统B时，提交到系统B的登录模块中的信息中包含由系统A生成的SSO令牌，系统B按照解密流程对SSO令牌解密，验证无误后由系统B完成登录并跳转到系统B的应用界面。</p>
<p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; color:rgb(51,51,51); font-family:tahoma,sans-serif; font-size:14px; line-height:30px">
<img src="http://www.lwfbxd.com/includes/ueditor/php/upload1/20140510/1399685315368496.png" title="4.png" alt="" style="border:0px none; float:none"></p>
<p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; color:rgb(51,51,51); font-family:tahoma,sans-serif; font-size:14px; line-height:30px">
<img src="http://www.lwfbxd.com/includes/ueditor/php/upload1/20140510/1399685322396440.png" title="5.png" alt="" style="border:0px none; float:none"><br>
<strong>　　5 结束语</strong><br>
　　本文提出了一种基于跨域单点登录令牌的设计与实现方案，脱离了目前较为成熟单点登录产品的束缚，易于实现系统之间跨平台、跨域的快速集成，从 而减少和降低用户使用各应用系统的压力，提高开发和管理效率，降低系统运行成本。通过该解决方案可快速实现多个Web应用系统之间单点登录的集成应用。&nbsp;&nbsp;<br>
</p>
<p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; color:rgb(51,51,51); font-family:tahoma,sans-serif; font-size:14px; line-height:30px">
　　目前，该解决方案已成功运用到某科技型中小企业认定系统中，用户首先登录到认定系统，如果用户需要发布本企业的动态信息，通过此方法可从认定系统中安全跳转到附属于认定系统的内容管理系统，从而快速的管理本企业发布的信息。<br>
　　该解决方案作为一个抛砖引玉的解决方法，可简单快速地实现应用系统之间的单向单点登录。要实现应用系统之间的双向单点登录，可通过建立统一权 限管理系统，由各个应用系统提供统一用户服务接口供统一权限管理系统调用完成应用系统之间的用户映射，亦可在应用系统之间实现双向单点登录。 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p>
<link rel="stylesheet" href="http://static.blog.csdn.net/public/res-min/markdown_views.css?v=2.0" />
            </div>
        </article>
        <div class="readall_box csdn-tracking-statistics" data-mod="popu_376">
			<div class="read_more_mask"></div>
            <a class="btn btn-large btn-gray-fred read_more_btn" target="_self">阅读全文</a>
        </div>
        <div class="article_copyright">
            
        </div>
        <!--  <div class="reward_box">
            <div class="tit">
              <button class="btn_reward"><i class="icon iconfont icon-dashang-"></i></button>
            </div>
            <dl class="clearfix">
              <dt><a href="#" target="_blank">近期打赏</a></dt>
              <dd><a href="#" target="_blank"><img src="http://avatar.csdn.net/9/3/2/2_nzf_001.jpg" alt="聂兆芳" title="聂兆芳"></a></dd>
              <dd><a href="#" target="_blank"><img src="http://avatar.csdn.net/9/3/2/2_nzf_001.jpg" alt="聂兆芳" title="聂兆芳"></a></dd>
              <dd><a href="#" target="_blank"><img src="http://avatar.csdn.net/9/3/2/2_nzf_001.jpg" alt="聂兆芳" title="聂兆芳"></a></dd>
              <dd><a href="#" target="_blank"><img src="http://avatar.csdn.net/9/3/2/2_nzf_001.jpg" alt="聂兆芳" title="聂兆芳"></a></dd>
              <dd><a href="#" target="_blank"><img src="http://avatar.csdn.net/9/3/2/2_nzf_001.jpg" alt="聂兆芳" title="聂兆芳"></a></dd>
            </dl>
          </div>-->

        <ul class="article_collect clearfix csdn-tracking-statistics"  data-mod="popu_378">
            <li class="tit">本文已收录于以下专栏：</li>
            
        </ul>
        <div class="comment_box clearfix">
            <div id="comment_form">
                <div id="commentsbmitarear">
                    <!-- <h6><span>0</span>条评论</h6> -->
           <!--          <dl class="clearfix" id="commentbox">
                        <dt>
                            <a href="http://my.csdn.net/"><img src="" ></a>
                        </dt>
                        <dd>
                            <a href="http://my.csdn.net/" target="_blank"></a>
                        </dd>
                        <dd class="txt_tip"><span id="tip_comment" class="tip"></span></dd>
                    </dl> -->
                    <div class="comment_area clearfix">
						<div class="userimg"><a href="http://my.csdn.net/"><img src=""></a></div>
                        <form action="/baicp3/comment/submit?id=46118203" method="post" onsubmit="return subform(this);" id="commentform">
                            <textarea class="comment_content" name="comment_content" id="comment_content" placeholder="发表你的评论"></textarea>
                            <div class="bot_bar clearfix">
                                <div id="ubbtools" class="add_code">
                                    <a href="#insertcode" code="code" target="_self"><i class="icon iconfont icon-daima"></i></a>
                                </div>

                                <input type="hidden" id="comment_replyId" name="comment_replyId">
                                <input type="hidden" id="comment_userId" name="comment_userId" value="">
                                <input type="hidden" id="commentId" name="commentId" value="">
                                <input type="submit" class="btn btn-redborder" value="发表评论">
								<span id="tip_comment" class="tip">
                                <div style="display: none;" class="csdn-tracking-statistics" data-mod="popu_384"><a href="#" target="_blank" class="comment_area_btn">发表评论</a></div>

                                <div id="lang_list" code="code">
                                    <a href="#html" style="width:95px;" class="long_name" target="_self">HTML/XML</a>
                                    <a href="#objc" style="width:95px;" class="long_name" target="_self">objective-c</a>
                                    <a href="#delphi" style="width:58px;" class="zhong_name" target="_self">Delphi</a>
                                    <a href="#ruby" class="zhong_name" target="_self">Ruby</a>
                                    <a href="#php" target="_self">PHP</a>
                                    <a href="#csharp" class="duan_name" target="_self">C#</a>
                                    <a style=" border-right: none;" href="#cpp" class="duan_name" target="_self">C++</a>
                                    <a style=" border-bottom:none;width:95px;" href="#javascript" class="long_name" target="_self">JavaScript</a>
                                    <a style=" border-bottom:none;width:95px;" href="#vb" class="long_name" target="_self">Visual Basic</a>
                                    <a style=" border-bottom:none;" href="#python" class="zhong_name" target="_self">Python</a>
                                    <a style=" border-bottom:none;" href="#java" class="zhong_name" target="_self">Java</a>
                                    <a style="border-bottom:none;" href="#css" class="duan_name" target="_self">CSS</a>
                                    <a style="border-bottom:none;" href="#sql" class="duan_name" target="_self">SQL</a>
                                    <a style="border:none; " href="#plain" class="duan_name" target="_self">其它</a>
                                    <span class="arrb"></span>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>

        <div class="comment_li_outbox">
            <div id="comment_list"></div>
        </div>

        <div class="more_comment">
            <div id="comment_bar" class="trackgin-ad" data-mod="popu_385"></div>
        </div>

        <h3 class="recommend_tit">相关文章推荐</h3>
        <div class="recommend_list clearfix">
            
            <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">
                <dd>
                    <h2><a href="/rosanu_blog/article/details/52588570"  target="_blank" strategy="BlogCommendFromBaidu_0">SSO单点登录使用token机制来验证用户的安全性</a></h2>
                    <div class="summary">
                        登录的业务逻辑
{
&#160;&#160;&#160; http:是短连接.
&#160;&#160; &#160;
&#160;&#160;&#160;&#160; 服务器如何判断当前用户是否登录?
&#160;&#160; &#160;
&#160;&#160;&#160; // ...
                    </div>
                    <ul>
                        <li class="avatar_img"><a href="http://blog.csdn.net/a416090287" target="_blank" strategy="BlogCommendFromBaidu_0"><img src="http://avatar.csdn.net/3/8/3/2_a416090287.jpg" alt="a416090287" title="a416090287"></a></li>
                        <li class="user_name"><a href="http://blog.csdn.net/a416090287">a416090287</a></li>
                        <li class="time">2016-09-19 19:29</li>
                        <li class="visited_num"><i class="icon iconfont icon-read"></i><span>14501</span></li>
                    </ul>
                </dd>
            </dl>
            
            <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">
                <dd>
                    <h2><a href="/furthersun/article/details/2296520"  target="_blank" strategy="BlogCommendFromBaidu_1">网站用户单点登录系统解决方案--令牌式 </a></h2>
                    <div class="summary">
                        网站用户单点登录系统解决方案                                                    1 背景            　　在网站建设的过程中，多个应用系统...
                    </div>
                    <ul>
                        <li class="avatar_img"><a href="http://blog.csdn.net/furthersun" target="_blank" strategy="BlogCommendFromBaidu_1"><img src="http://avatar.csdn.net/9/3/E/2_furthersun.jpg" alt="furthersun" title="furthersun"></a></li>
                        <li class="user_name"><a href="http://blog.csdn.net/furthersun">furthersun</a></li>
                        <li class="time">2008-04-16 11:50</li>
                        <li class="visited_num"><i class="icon iconfont icon-read"></i><span>925</span></li>
                    </ul>
                </dd>
            </dl>
            
            <!--dl class="clearfix csdn-tracking-statistics" data-mod="popu_393">
                <dt><a href="http://edu.csdn.net/huiyiCourse/series_detail/64?utm_source=blog10" target="_blank"><img class="maxwidth" src="http://img.blog.csdn.net/20170928113144608" alt="" title=""></a></dt>
                <dd>
                    <div class="summary">
                        <h2><a href='http://edu.csdn.net/topic/python1?utm_source=blog10' target='_blank'>伤心啊！年度热门编程语言排行榜出来了...</a></h2>  <div class="summary">近期，IEEE Spectrum 发布了第四届顶级编程语言交互排行榜。结合 10 个线上数据源的 12 个标准，对 48 种语言进行了排行！此外，七牛云许式伟曾说过Go语言会取代Java...气氛... </div> 
                    </div>
                </dd>
            </dl-->
	<script>
		(function() {
		    var s = "_" + Math.random().toString(36).slice(2);
		    document.write('<div id="' + s + '"></div>');
		    (window.slotbydup=window.slotbydup || []).push({
			id: '4765209',
			container: s,
			size: '808,120',
			display: 'inlay-fix'
		    });
		})();
	</script>
            
            <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">
                <dd>
                    <h2><a href="/a595364628/article/details/49862829"  target="_blank" strategy="BlogCommendFromBaidu_2">用户登录及访问资源的过程之访问令牌篇</a></h2>
                    <div class="summary">
                        各位都知道，工作组下本地用户登录需要到本地的SAM数据库中做身份验证，而域用户如果在域内的客户机上登录，需要到AD数据库中作身份验证。我在这里仅以域用户为例来说明用户的详细的登录过程。

&#160;&#160;&#160; ...
                    </div>
                    <ul>
                        <li class="avatar_img"><a href="http://blog.csdn.net/a595364628" target="_blank" strategy="BlogCommendFromBaidu_2"><img src="http://avatar.csdn.net/B/9/3/2_a595364628.jpg" alt="a595364628" title="a595364628"></a></li>
                        <li class="user_name"><a href="http://blog.csdn.net/a595364628">a595364628</a></li>
                        <li class="time">2015-11-16 10:43</li>
                        <li class="visited_num"><i class="icon iconfont icon-read"></i><span>1049</span></li>
                    </ul>
                </dd>
            </dl>
            
            <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">
                <dd>
                    <h2><a href="/xcy13638760/article/details/19684737"  target="_blank" strategy="BlogCommendFromBaidu_3">SSO——单点登陆原理与比较</a></h2>
                    <div class="summary">
                        SSO，单一登录（single sign-on），意思是指在多套系统并存的环境下，用户只需登录一次即可访问其他授权的系统。

提起SSO（单一登录），大概企业里的IT人员无人不知，但真正意识到其复...
                    </div>
                    <ul>
                        <li class="avatar_img"><a href="http://blog.csdn.net/xcy13638760" target="_blank" strategy="BlogCommendFromBaidu_3"><img src="http://avatar.csdn.net/9/A/B/2_xcy13638760.jpg" alt="xcy13638760" title="xcy13638760"></a></li>
                        <li class="user_name"><a href="http://blog.csdn.net/xcy13638760">xcy13638760</a></li>
                        <li class="time">2014-02-22 14:59</li>
                        <li class="visited_num"><i class="icon iconfont icon-read"></i><span>2201</span></li>
                    </ul>
                </dd>
            </dl>
            <!-- 广告位：PC端-博客详情通栏7（feed流）-808*120 --><script> (function() {    var s = "_" + Math.random().toString(36).slice(2);   document.write('<div id="' + s + '"></div>');    (window.slotbydup=window.slotbydup || []).push({        id: '4983339',       container: s,        size: '808,120',        display: 'inlay-fix'    }); })();  </script>
            <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">
                <dd>
                    <h2><a href="/lishehe/article/details/40196353"  target="_blank" strategy="BlogCommendFromBaidu_4">SSO  基于Cookie+fliter实现单点登录（SSO）：工作原理</a></h2>
                    <div class="summary">
                        单点登录SSO（Single Sign On）说得简单点就是在一个多系统共存的环境下，用户在一处登录后，就不用在其他系统中登录，也就是用户的一次登录能得到其他所有系统的信任。单点登录在大型网站里使用得...
                    </div>
                    <ul>
                        <li class="avatar_img"><a href="http://blog.csdn.net/lishehe" target="_blank" strategy="BlogCommendFromBaidu_4"><img src="http://avatar.csdn.net/D/4/8/2_lishehe.jpg" alt="lishehe" title="lishehe"></a></li>
                        <li class="user_name"><a href="http://blog.csdn.net/lishehe">lishehe</a></li>
                        <li class="time">2014-10-18 00:17</li>
                        <li class="visited_num"><i class="icon iconfont icon-read"></i><span>10577</span></li>
                    </ul>
                </dd>
            </dl>
            
            <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">
                <dd>
                    <h2><a href="/menghuannvxia/article/details/46117229"  target="_blank" strategy="BlogCommendFromBaidu_5">简单实现Shiro单点登录（自定义Token令牌）</a></h2>
                    <div class="summary">
                        1. MVC Controller 映射 sso 方法。


Java代码&#160;&#160;



/**&#160;
&#160;*&#160;单点登录（如已经登录，则直接跳转）&#160;
&#160;*&#160;@param&#160;userCode&#160;登录...
                    </div>
                    <ul>
                        <li class="avatar_img"><a href="http://blog.csdn.net/menghuannvxia" target="_blank" strategy="BlogCommendFromBaidu_5"><img src="http://avatar.csdn.net/2/F/4/2_menghuannvxia.jpg" alt="menghuannvxia" title="menghuannvxia"></a></li>
                        <li class="user_name"><a href="http://blog.csdn.net/menghuannvxia">menghuannvxia</a></li>
                        <li class="time">2015-05-28 09:16</li>
                        <li class="visited_num"><i class="icon iconfont icon-read"></i><span>3987</span></li>
                    </ul>
                </dd>
            </dl>
            
            <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">
                <dd>
                    <h2><a href="/ler_123/article/details/54289825"  target="_blank" strategy="BlogCommendFromCF_6">Solidity中文文档----实例篇</a></h2>
                    <div class="summary">
                        原文链接：http://solidity.readthedocs.io/en/latest/solidity-by-example.html实例一：投票下面的合同比较复杂，展示了Solidity的很多...
                    </div>
                    <ul>
                        <li class="avatar_img"><a href="http://blog.csdn.net/ler_123" target="_blank" strategy="BlogCommendFromCF_6"><img src="http://avatar.csdn.net/1/1/9/2_ler_123.jpg" alt="ler_123" title="ler_123"></a></li>
                        <li class="user_name"><a href="http://blog.csdn.net/ler_123">ler_123</a></li>
                        <li class="time">2017-01-09 15:58</li>
                        <li class="visited_num"><i class="icon iconfont icon-read"></i><span>1072</span></li>
                    </ul>
                </dd>
            </dl>
            
            <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">
                <dd>
                    <h2><a href="/fidelhl/article/details/50520572"  target="_blank" strategy="BlogCommendFromCF_7">以太坊未来的 POS 协议:Casper</a></h2>
                    <div class="summary">
                        以太坊未来的 POS 协议

大家好，我是Vlad. 2014年9月份我开始了研究和设计以太坊POS(proof-of-stake, 权益证明)架构的工作。目前Vitalik和我对于Serenit...
                    </div>
                    <ul>
                        <li class="avatar_img"><a href="http://blog.csdn.net/fidelhl" target="_blank" strategy="BlogCommendFromCF_7"><img src="http://avatar.csdn.net/0/F/0/2_fidelhl.jpg" alt="fidelhl" title="fidelhl"></a></li>
                        <li class="user_name"><a href="http://blog.csdn.net/fidelhl">fidelhl</a></li>
                        <li class="time">2016-01-14 22:10</li>
                        <li class="visited_num"><i class="icon iconfont icon-read"></i><span>4109</span></li>
                    </ul>
                </dd>
            </dl>
            
            <dl class="clearfix csdn-tracking-statistics" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">
                <dd>
                    <h2><a href="/houqd2012/article/details/44837649"  target="_blank" strategy="BlogCommendFromCsdn_8">跨域单点登录系统的设计与实现</a></h2>
                    <div class="summary">
                        跨域单点登录系统的设计与实现
一、跨域单点登录系统整体设计
1.&#160;系统架构


如上图所示：在系统存在一个认证中心以及多个站点。用户信息统一由认证中心管理，在其它子站的登录均会跳转到认证中心...
                    </div>
                    <ul>
                        <li class="avatar_img"><a href="http://blog.csdn.net/houqingdong2012" target="_blank" strategy="BlogCommendFromCsdn_8"><img src="http://avatar.csdn.net/3/9/D/2_houqingdong2012.jpg" alt="houqingdong2012" title="houqingdong2012"></a></li>
                        <li class="user_name"><a href="http://blog.csdn.net/houqingdong2012">houqingdong2012</a></li>
                        <li class="time">2015-04-02 21:24</li>
                        <li class="visited_num"><i class="icon iconfont icon-read"></i><span>1770</span></li>
                    </ul>
                </dd>
            </dl>
            
            <dl class="clearfix csdn-tracking-statistics downloadElement" data-mod="popu_387" data-poputype="feed"  data-feed-show="false"  data-dsm="post">
               	<dt><a href="http://download.csdn.net/detail/yupengfei0704/3116098" target="_blank" strategy="BlogCommendFromCsdn_9"><img class="maxwidth" src="http://download.csdn.net/images/minetype/pdf.svg" alt="" title=""></a></dt>
		<dd>
			<div class="summary">
				<h2><a href="http://download.csdn.net/detail/yupengfei0704/3116098" target="_blank" strategy="BlogCommendFromCsdn_9">基于Java+EE的跨域单点登录系统的研究与实现</a></h2>
				<div class="summary">
				  <ul>
					  <li class="time">2011-03-22 15:29</li>
					  <li class="visited_num fileSize">3.68MB</li>
					  <li class="download_btn"><a href="http://download.csdn.net/detail/yupengfei0704/3116098" target="_blank">下载</a></li>
				  </ul>
				</div> 
			</div>
		</dd>
            </dl>
            

	   

            

            
        </div>
    </main>
    <aside>
        <div class="right_box user_info">
            <dl class="inf_bar clearfix">
                <dt class="csdn-tracking-statistics" data-mod="popu_381">
                    <a href="http://blog.csdn.net/baicp3" target="_blank">
                        <img src="http://avatar.csdn.net/A/6/A/1_baicp3.jpg" class="avatar_pic">
                    </a>
                    <span class="medals" title="">
                <svg class="icon" aria-hidden="true">
                    
                </svg>
              </span>
                </dt>
                <dd>
                    <h3 class="csdn-tracking-statistics"  data-mod="popu_380"><a href="http://blog.csdn.net/baicp3" target="_blank" id="uid">baicp3</a></h3>
                    <span  class="csdn-tracking-statistics" data-mod="popu_379"><a class="btn btn-redborder-small "  id="span_add_follow" target="_self">＋关注</a></span>
                </dd>
            </dl>
            <div class="inf_number_box clearfix">
                <dl>
                    <dt>原创</dt>
                    <dd>234</dd>
                </dl>
                <dl>
                    <dt>粉丝</dt>
                    <dd id='fan'>37</dd>
                </dl>
                <dl>
                    <dt>喜欢</dt>
                    <dd>0</dd>
                </dl>
								 <dl>
              <dt>码云</dt>
              <dd>&nbsp;</dd>
            </dl>

            </div>
	    <div class="writings">
              <div class="public_signal clearfix">
                <h3>他的最新文章</h3>
                <a href="http://blog.csdn.net/baicp3" target="_blank" class="more_z"><span>更多文章</span></a>
              </div>
                <ul class="inf_list clearfix csdn-tracking-statistics" data-mod="popu_382">
                    
                    <li class="clearfix">
                      
                        <a href="/baicp3/article/details/50947510" target="_blank">JS中数字计算精度</a>
                    </li>
                    
                    <li class="clearfix">
                      
                        <a href="/baicp3/article/details/50932150" target="_blank">mysql 安装遇到问题解决方式</a>
                    </li>
                    
                    <li class="clearfix">
                      
                        <a href="/baicp3/article/details/50906760" target="_blank">分布式缓存的一致性hash算法</a>
                    </li>
                    
                    <li class="clearfix">
                      
                        <a href="/baicp3/article/details/50905021" target="_blank">强大的分布式消息中间件——kafka</a>
                    </li>
                    
                </ul>
            </div>
        </div>
        <div class="extension_other csdn-tracking-statistics" data-mod="popu_389">
						<!--u3032528-->
			<div class="flashrecommend">

<!-- 请置于所有广告位代码之前 -->
<script src="http://dup.baidustatic.com/js/dm.js"></script>
           
<!-- 广告位：PC端-博客详情页右侧视窗1（feed流）-300*250 -->
<script>
(function() {
    var s = "_" + Math.random().toString(36).slice(2);
    document.write('<div id="' + s + '"></div>');
    (window.slotbydup=window.slotbydup || []).push({
        id: '4770930',
        container: s,
        size: '300,250',
        display: 'inlay-fix'
    });
})();
</script>

		    </div>
        </div>

        
        <div class="fixRight">
            <div class="right_box padb0 csdn-tracking-statistics" data-mod="popu_391">
                <h3 class="tit"><span><em>在线课程</em></span></h3>
                <ul class="edu_li clearfix">
                  
                  <li>
                    <div>
                      <a href="http://edu.csdn.net/huiyiCourse/detail/603?utm_source=blog7" target="_blank">
                        <img src="http://img.bss.csdn.net/201711101450316277.png" alt="MVVM在美团点评酒旅移动端的最佳实践" title="MVVM在美团点评酒旅移动端的最佳实践">
                      </a>
                    </div>
                    <div>
                      <p><a href="http://edu.csdn.net/huiyiCourse/detail/603?utm_source=blog7" target="_blank">MVVM在美团点评酒旅移动端的最佳实践</a></p>
                      <p>讲师：王禹华</p>
                    </div>
                  </li>
                  
                  <li>
                    <div>
                      <a href="http://edu.csdn.net/huiyiCourse/detail/594?utm_source=blog7" target="_blank">
                        <img src="http://img.bss.csdn.net/201711101448389242.png" alt="C语言大型软件设计的面向对象" title="C语言大型软件设计的面向对象">
                      </a>
                    </div>
                    <div>
                      <p><a href="http://edu.csdn.net/huiyiCourse/detail/594?utm_source=blog7" target="_blank">C语言大型软件设计的面向对象</a></p>
                      <p>讲师：宋宝华</p>
                    </div>
                  </li>
                  
                </ul>
            </div>
			<!--u3032529-->
            <!-- <div class="extension_other csdn-tracking-statistics baidu_box" data-mod="popu_395">
								
                <script type="text/javascript" src="http://mpb1.iteye.com/cxpdpmumfaedgm.js"></script>
            </div> -->
			<div class="extension_other csdn-tracking-statistics bottomRcom" data-mod="popu_389" style="position:absolute;z-index:-5;opacity:0;pointer-events:none">
						<!--u3032528-->
				<div class="flashrecommend">
				<script type="text/javascript" src="http://mpb1.iteye.com/bwocoltlyzdec.js"></script>
				</div>
			</div>
        </div>
		<div class="user-hotArticle">
          <h3>热门文章</h3>
          <ul class="hotArticle-list csdn-tracking-statistics" data-mod="popu_521">
 
            <li>
              <a href="/baicp3/article/details/50508584">mybatis resultType返回类型汇总。</a>
              <div class="read list-left"><i class="icon iconfont icon-read"></i><span>31906</span></div>
            </li>
 
            <li>
              <a href="/baicp3/article/details/25419977">解决Jquery异常:Uncaught ReferenceError: jQuery is not defined</a>
              <div class="read list-left"><i class="icon iconfont icon-read"></i><span>18694</span></div>
            </li>
 
            <li>
              <a href="/baicp3/article/details/12874597">div ul li 嵌套后解决高度自适应方法</a>
              <div class="read list-left"><i class="icon iconfont icon-read"></i><span>13918</span></div>
            </li>
 
            <li>
              <a href="/baicp3/article/details/46622293">SQL2008全部数据导出导入两种方法</a>
              <div class="read list-left"><i class="icon iconfont icon-read"></i><span>12934</span></div>
            </li>
 
            <li>
              <a href="/baicp3/article/details/24773817">java中File的delete()方法删除文件失败的原因</a>
              <div class="read list-left"><i class="icon iconfont icon-read"></i><span>11817</span></div>
            </li>
 
          </ul>
        </div>


    </aside>
</div>

<div class="left_fixed">
      <div class="left_show_button">
        <span>
          <i class="icon iconfont icon-youjiantou"></i>
        </span>
      </div>
    <ul class="left_menu">

        <li>
            <button class="left-fixed-btn btn-like csdn-tracking-statistics" data-mod="popu_373" target="_self">
                <span class="iconbox border_red"><i class="icon iconfont icon-dianzan"></i></span>
				<span class="txt">0</span>
            </button>
        </li>
		<li id="blog_artical_directory">
            <button class="left-fixed-btn left_menu_btn csdn-tracking-statistics" data-mod="popu_372" target="_self">
                <span class="iconbox border_black"><i class="icon iconfont icon-mulu"></i></span>
            </button>
        </li>
        <li class="menu_con">
            <div class="list_father">
                <div class="arr_box">
                    <button class="btn-noborder arr-btn scroll-down  left_scroll_down"><i class="icon iconfont icon-xiajiantou"></i></button>
                    <button class="btn-noborder arr-btn scroll-up left_scroll_top"><i class="icon iconfont icon-shangjiantou"></i></button>
                </div>
                <div class="arr"></div>
                <div id="csdnBlogDir"></div>
            </div>
        </li>
        <li>
            <button class="left-fixed-btn csdn-tracking-statistics" data-mod="popu_374"  id="com-quick-collect" target="_self">
                <span class="iconbox border_purple"><i class="icon iconfont icon-shoucang"></i></span>
    
            </button>
        </li>
		<li>
          <button class="left-fixed-btn btn-pinglun" >
            <span class="iconbox border_purple"><i class="icon iconfont icon-pinglun"></i></span>
          </button>
        </li>
        <li id="share_box">
            <button class="left-fixed-btn  csdn-tracking-statistics"  data-mod="popu_375" target="_self">
                <span class="iconbox border_orange"><i class="icon iconfont icon-fenxiang"></i></span>
            </button>
            <div class="bdsharebuttonbox csdn-tracking-statistics" data-mod="popu_172">
                <div class="outside">
                    <span class="iconbox border_red2"><i class="icon iconfont icon-xinlang"></i></span>
                    <a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博"> </a>
                </div>
                <div class="outside">
                    <span class="iconbox border_green"><i class="icon iconfont icon-weixin"></i></span>
                    <a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信"> </a>
                </div>
                <div class="outside">
                    <span class="iconbox border_blue"><i class="icon iconfont icon-QQ"></i></span>
                    <a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间"> </a>
                </div>
            </div>
        </li>
    </ul>
</div>
<div class="right_fixed">
  <div class="r_ico">
	<i class="icon iconfont icon-jubao"></i>
	<span class="txt" id="reportBtn">内容举报</span>
  </div>
  <div class="returnTop">
   <i class="icon iconfont icon-fanhuidingbu"></i>
   <span>返回顶部</span>
 </div>
</div>
<div id="pop_win"></div>
<div id="popup_mask"></div>
<div class="pop_CA_cover" ></div>
<div class="pop pop_CA" >
    <div class="CA_header">
        收藏助手
        <span class="cancel_icon"  id="fapancle" ></span>
    </div>
    <iframe src="" id="collectIframe" frameborder="0" width="100%" height="360"  scrolling="no" ></iframe>
</div>
<!--举报-->
<div id="report_dialog" style="top: 250px; left: 343.5px;"><div id="panel_report">
    <div class="panel_head">不良信息举报</div>
    <form method="post" id="frmReport" class="panel_body">
        <table border="0" cellpadding="0" cellspacing="4" class="pop_table">
            <tbody><tr><td colspan="2">您举报文章：<a href="http://blog.csdn.net/raintungli/article/details/76583070" target="_blank">深度学习：神经网络中的前向传播和反向传播算法推导</a></td></tr>
            <tr>
                <th style="width:60px;">举报原因：</th>
                <td id="panel_reporttype">
                    <label><input type="radio" class="report_type" id="report_sex" name="report_type" value="1">色情</label>
                    <label><input type="radio" class="report_type" id="report_Politics" name="report_type" value="2">政治</label>
                    <label><input type="radio" class="report_type" id="report_copy" name="report_type" value="3">抄袭</label>
                    <label><input type="radio" class="report_type" id="report_ad" name="report_type" value="4">广告</label>
                    <label><input type="radio" class="report_type" id="report_want" name="report_type" value="5">招聘</label>
                    <label><input type="radio" class="report_type" id="report_call" name="report_type" value="6">骂人</label>
                    <br>
                    <label><input type="radio" class="report_type" id="report_other" name="report_type" value="7">其他</label>
                    <input type="text" name="report_other_content" id="report_other_content" maxlength="30" style="display: none;">
                </td>
            </tr>
            <tr id="panel_originalurl" style="display: none;">
                <th>原文地址：</th>
                <td>
                    <input id="originalurl" value="http://" name="originalurl" type="text" style="width: 90%;">
                </td>
            </tr>
            <tr>
                <th id="sp_reason">原因补充：</th>
                <td>
                    <textarea id="report_description" style="width: 300px;" rows="3" name="report_description"></textarea>
                    <p id="sp_n" style="color:#999;margin:0px;padding:0px;">(最多只允许输入30个字)</p>
                </td>
            </tr>
            <tr>
                <td></td>
                <td>
                    <input id="btnSubmitReport" name="submit" type="image" align="middle" class="btn_1" src="http://static.blog.csdn.net/images/btn_submit.jpg">
                    <span style="padding-left:20px;"></span>
                    <img id="btnCloseReportDialog" src="http://static.blog.csdn.net/images/btn_cancel.jpg" align="middle">
                    <div id="error" style="color: Red">
                    </div>
                </td>
            </tr>
            </tbody></table>
    </form>
</div>
    <script language="javascript" type="text/javascript">
        var isComment=0;
        //显示隐藏地址
        $(function () {
            if(isComment){
                $("#report_description").attr("disabled",true);
                $("#sp_n").hide();
                $("#sp_reason").html("评论内容：");
            }
            $(".report_type").click(function () {
                $("#panel_originalurl,#report_other_content").hide();
                switch ($(this).val()) {
                    case '3':
                        $("#panel_originalurl").show();
                        $("#originalurl").focus();
                        break;
                    case '7':
                        if(isComment){
                            $("#report_other_content").show().focus();
                        }
                        break;
                }

            });

            $("#frmReport").submit(function () {
                if (!currentUserName) {

                    if (confirm("您的操作必须登录，是否登录？")) {
                        location.href = "http://passport.csdn.net/account/login?from=" + encodeURIComponent(location.href);
                        return false;
                    }
                    return false;
                }

                var reportType = $("input[name=report_type]:checked").val();
                if(!reportType){
                    alert("请选择举报原因！");
                    return false;
                }
                var otherInfo = "";
                switch (reportType) {
                    case '3':
                        otherInfo = $("#originalurl").val();
                        if (otherInfo == ""||otherInfo=="http://") {
                            alert("举报抄袭必须提供原创文章地址！");
                            $("#originalurl").focus();
                            return false;
                        } else if(!checkeURL(otherInfo)) {
                            alert("请输入正确的原创文章地址！");
                            $("#originalurl").focus();
                            return false;
                        }
                        break;
                    case '7':
                        otherInfo = $("#report_other_content").val();
                        if (isComment && !otherInfo) {
                            alert("请填写举报的具体原因！");
                            $("#report_other_content").focus();
                            return false;
                        }
                        if(!isComment){
                            if(!$("#report_description").val()){
                                alert("请填写举报的具体原因！");
                                $("#report_description").focus();
                                return false;
                            }
                        }
                        break;
                }
                if(!isComment){
                    if($("#report_description").val().length>30){
                        alert("举报原因最多只允许输入30个字！");
                        return false;
                    }
                }
                nowTime = {
                  year: new Date().getFullYear(),
                  month: parseInt(new Date().getMonth())+1,
                  day: new Date().getDate(),
                  hours: parseInt(new Date().getHours()),
                  minutes: parseInt(new Date().getMinutes()),
                  seconds: parseInt(new Date().getSeconds())
                }
                var data = {
                    articleId: fileName,
                    commentId: 0,
                    reportType: reportType,
                    originalurl: $("#originalurl").val(),
                    report_other_content: $("#report_other_content").val(),
                    report_description: $("#report_description").val(),
                    currentUserName: currentUserName,
                    updatetime: nowTime.year+'/'+nowTime.month+'/'+nowTime.day+' '+ nowTime.hours+':'+nowTime.minutes+':'+seconds,
                    blogUser: username
                };
                if(!isComment){//如果是举报文章
                    data.report_other_content = data.report_description;
                    // data.report_description = "1. 神经网络这是一个常见的神经网络的图：这是一个常见的三层神经网络的基本构成，Layer L1是输入层，Layer L2是隐含层";
                }

                $.post(blog_address + "/common/report?id="+fileName+"&t=2", data, function (data) {
                    if (data.result == 1){
                        SetError("感谢您的举报，我们会尽快审核！");
                    }else{
                        if (data.content) alert(data.content);
                    }

                });
                return false;
            });

            $("#btnCloseReportDialog").click(function () {
                CloseDiv();
            });

        });

        //提示后关闭方法
        function SetError(error) {
            $("#btnCloseReportDialog").trigger("click");
            alert(error);
            CloseDiv();
        }

        //关闭方法
        function CloseDiv() {

            $.removeMask();
            $("#report_dialog").hide();
            return false;
        }

        //验证url
        function checkeURL(url){
            return /^http(s)?:\/\/([\w-]+\.)+[\w-]+/i.test(url);
        }

    </script>
</div>

<script src="http://c.csdnimg.cn/public/common/libs/bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
<script type="text/javascript" src="http://static.blog.csdn.net/public/res/bower-libs/MathJax/MathJax.js?config=TeX-AMS_HTML"></script>
<script type="text/javascript" src="http://passport.csdn.net/content/loginbox/login.js"></script>

<script type="text/javascript" src="http://static.blog.csdn.net/Skin/skin3-template/js/blog_ver.js?v=2017.042"></script>
<script type="text/javascript" src="http://static.blog.csdn.net/Skin/skin3-template/js/skin2017.js?v=2017.042"></script>
<script type="text/javascript" src="http://static.blog.csdn.net/scripts/cnick.js"></script>
<script>window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": "", "bdMini": "1", "bdMiniList": false, "bdPic": "", "bdStyle": "0", "bdSize": "16" }, "share": {} }; with (document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' + ~(-new Date() / 36e5)];</script>
<script type="text/javascript" >
    if($(".article_collect li").length==1){$(".article_collect").hide();}
    if($(".article_tags li").length==1){$(".article_tags").hide();}
    $(".edit a").attr("href","http://write.blog.csdn.net/postedit/"+fileName);
    $.each($(".edu_li a"),function(){$(this).attr("href",$(this).attr("href").replace("blog7","blog9"))});
    new CNick('#uid').showNickname();
if($("#fan").html()=="")
{
$("#fan").html(0);	
}

	var blogCustomType ='{customtype}';
                
        $("#custom"+blogCustomType).show();
</script>
</body>

<script  type="text/javascript">
    var fromjs=$("#fromjs");
    if(fromjs.length>0)
    {                  
        $("#fromjs .markdown_views pre").addClass("prettyprint");       
        prettyPrint();

        $('pre.prettyprint code').each(function () {
            var lines = $(this).text().split('\n').length;
            var $numbering = $('<ul/>').addClass('pre-numbering').hide();
            $(this).addClass('has-numbering').parent().append($numbering);
            for (i = 1; i <= lines; i++) {
                $numbering.append($('<li/>').text(i));
            };
            $numbering.fadeIn(1700);
        });

        $('.pre-numbering li').css("color","#999");             
    }

    $(function(){
        setTimeout(function(){
            $(".math").each(function(index,value){$(this).find("span").last().css("color","#fff"); })
        },500);         
       

    });

    setTimeout(function () {
        $(".toc a[target='_blank']").attr("target", "");
    }, 500);

</script>
</html>

